package br.com.game.database.dao;

import java.util.List;

import javax.persistence.PersistenceException;
import javax.persistence.Query;

import br.com.game.database.modelo.Aluno;
import br.com.game.database.modelo.Equipe;

public class EquipeJPADao extends GenericJPADao<Equipe> implements EquipeDao {

	public EquipeJPADao() {
		persistenceClass = Equipe.class;
	}

	@Override
	public List<Equipe> getList() {
		String sql = "select e from Equipe e ";

		Query query = em.createQuery(sql);

		return query.getResultList();
	}

	/* (non-Javadoc)
	 * @see br.com.game.database.dao.EquipeDao#adicionarEquipe(br.com.game.database.modelo.Equipe)
	 */
	@Override
	public void adicionarEquipe(Equipe equipe) {
		try {
			for (int i = 0; i < equipe.getAlunos().size(); i++) {
				Aluno aluno = equipe.getAlunos().get(i);
				aluno = em.find(Aluno.class, aluno.getLogin());
				equipe.getAlunos().add(i, aluno);
			}	
			this.update(equipe);
		} catch (PersistenceException ex) {
			throw new RuntimeException();	
		}
	}

	public static void main(String[] args) {

		/*
		 * Equipe e = new Equipe(); e.setNome("Teste Equipe");
		 */

/*		EquipeJPADao dao = new EquipeJPADao();
		Query q = dao.em.createQuery("select a from Aluno a");
		List<Aluno> alunos = q.getResultList();
		Equipe e = dao.getList().get(0);
		e.setAlunos(alunos);
		System.out.println(e.getAlunos());
		dao.begin();
		// dao.save(e);
		for (Aluno aluno : alunos) {
			aluno.setEquipe(e);
			dao.em.merge(aluno);
		}
		dao.update(e);
		dao.commit();
		dao.close();
*/
		
	}

}
